<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <meta>
  <!-- Stylesheets -->
  <link href="../web.css" type="text/css" rel="stylesheet"></link>
  <link href="../pygmentize.css" type="text/css" rel="stylesheet"></link>
  <title>VLFeat - Documentation - C API</title>
  <link rel="stylesheet" type="text/css" href="../doxygen.css"></style>

  <!-- Scripts-->
  
 </meta>

 <!-- Body Start -->
 <body>
  <div id="header">
   <!-- Google CSE Search Box Begins -->
   <form action="http://www.vlfeat.org/search.html" method="get" id="cse-search-box" enctype="application/x-www-form-urlencoded">
    <div>
     <input type="hidden" name="cx" value="003215582122030917471:oq23albfeam"></input>
     <input type="hidden" name="cof" value="FORID:11"></input>
     <input type="hidden" name="ie" value="UTF-8"></input>
     <input type="text" name="q" size="31"></input>
     <input type="submit" name="sa" value="Search"></input>
    </div>
   </form>
   <script src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en" xml:space="preserve" type="text/javascript"></script>
   <!-- Google CSE Search Box Ends -->
   <h1><a shape="rect" href="../index.html" class="plain"><span id="vlfeat">VLFeat</span><span id="dotorg">.org</span></a></h1>
  </div>
  <div id="headbanner">
   Documentation - C API
  </div>
  <div id="pagebody">
   <div id="sidebar"> <!-- Navigation Start -->
    <ul>
<li><a href="../index.html">Home</a>
</li>
<li><a href="../download.html">Download</a>
</li>
<li><a href="../doc.html">Documentation</a>
<ul>
<li><a href="../mdoc/mdoc.html">Matlab API</a>
</li>
<li><a href="index.html" class='active' >C API</a>
</li>
<li><a href="../man/man.html">Man pages</a>
</li>
</ul></li>
<li><a href="../overview/tut.html">Tutorials</a>
</li>
<li><a href="../applications/apps.html">Applications</a>
</li>
</ul>

   </div> <!-- sidebar -->
   <div id="content">
    
    <link rel="stylesheet" type="text/css" href="../doxygen.css"></style>
    <div class="doxygen">
<div>
<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">VlAIB Struct Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="VlAIB" -->
<p>AIB algorithm data.  
 <a href="structVlAIB.html#details">More...</a></p>

<p><code>#include &lt;aib.h&gt;</code></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#a77f5198dcd0bfb7a47985ac0c5d84e3b">nodes</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#ac44b016feb6fc2397f4f79e5a1ae22e1">nentries</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#ace9cbba670128776c03a9cf0d7e53dfe">beta</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#abb81041e575b04b2b2a0f8126ccbcf17">bidx</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#aa0e490d88c8ea0c372bf02b23f291108">which</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#a6143399b605075053c30e4d603aceb81">nwhich</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#ac1949576f214b7a6691189deb7d9dace">Pcx</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#a064882a6f2252669858850fc650b97de">Px</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#a4d948f7509b088aa37d64fb7ac0e82b8">Pc</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#aff0e65edef1bb1e339ee0901dd2f8587">nvalues</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#a650b9fef79d1b92a464a1481643fb619">nlabels</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#ae0a5d0c9804d157558b92eb06b5c840f">parents</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlAIB.html#ac62155359405a96c7f346b8ad11f248a">costs</a></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>The implementation is quite straightforward, but the way feature values are handled in order to support efficient joins, deletions and re-arrangement needs to be explained. This is achieved by adding a layer of indirection:</p>
<ul>
<li>Call each feature value (either original or obtained by a join operation) a <em>node</em>. Nodes are identified by numbers.</li>
<li>Call each element of the various arrays (such as <a class="el" href="structVlAIB.html#a064882a6f2252669858850fc650b97de">VlAIB::Px</a>) an <em>entry</em>.</li>
<li>Entries are dynamically associated to nodes as specified by <a class="el" href="structVlAIB.html#a77f5198dcd0bfb7a47985ac0c5d84e3b">VlAIB::nodes</a>. For example, <code>Px</code>[i] refers to the node <code>nodes</code>[i]. </li>
</ul>
</div><hr/><h2>Field Documentation</h2>
<a class="anchor" id="ace9cbba670128776c03a9cf0d7e53dfe"></a><!-- doxytag: member="VlAIB::beta" ref="ace9cbba670128776c03a9cf0d7e53dfe" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* <a class="el" href="structVlAIB.html#ace9cbba670128776c03a9cf0d7e53dfe">VlAIB::beta</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Minimum distance to an entry </p>

</div>
</div>
<a class="anchor" id="abb81041e575b04b2b2a0f8126ccbcf17"></a><!-- doxytag: member="VlAIB::bidx" ref="abb81041e575b04b2b2a0f8126ccbcf17" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a>* <a class="el" href="structVlAIB.html#abb81041e575b04b2b2a0f8126ccbcf17">VlAIB::bidx</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Closest entry </p>

</div>
</div>
<a class="anchor" id="ac62155359405a96c7f346b8ad11f248a"></a><!-- doxytag: member="VlAIB::costs" ref="ac62155359405a96c7f346b8ad11f248a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* <a class="el" href="structVlAIB.html#ac62155359405a96c7f346b8ad11f248a">VlAIB::costs</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Cost of each merge </p>

</div>
</div>
<a class="anchor" id="ac44b016feb6fc2397f4f79e5a1ae22e1"></a><!-- doxytag: member="VlAIB::nentries" ref="ac44b016feb6fc2397f4f79e5a1ae22e1" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> <a class="el" href="structVlAIB.html#ac44b016feb6fc2397f4f79e5a1ae22e1">VlAIB::nentries</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Total number of entries (= # active nodes) </p>

</div>
</div>
<a class="anchor" id="a650b9fef79d1b92a464a1481643fb619"></a><!-- doxytag: member="VlAIB::nlabels" ref="a650b9fef79d1b92a464a1481643fb619" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> <a class="el" href="structVlAIB.html#a650b9fef79d1b92a464a1481643fb619">VlAIB::nlabels</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Number of labels </p>

</div>
</div>
<a class="anchor" id="a77f5198dcd0bfb7a47985ac0c5d84e3b"></a><!-- doxytag: member="VlAIB::nodes" ref="a77f5198dcd0bfb7a47985ac0c5d84e3b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a>* <a class="el" href="structVlAIB.html#a77f5198dcd0bfb7a47985ac0c5d84e3b">VlAIB::nodes</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Entires to nodes </p>

</div>
</div>
<a class="anchor" id="aff0e65edef1bb1e339ee0901dd2f8587"></a><!-- doxytag: member="VlAIB::nvalues" ref="aff0e65edef1bb1e339ee0901dd2f8587" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> <a class="el" href="structVlAIB.html#aff0e65edef1bb1e339ee0901dd2f8587">VlAIB::nvalues</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Number of feature values </p>

</div>
</div>
<a class="anchor" id="a6143399b605075053c30e4d603aceb81"></a><!-- doxytag: member="VlAIB::nwhich" ref="a6143399b605075053c30e4d603aceb81" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> <a class="el" href="structVlAIB.html#a6143399b605075053c30e4d603aceb81">VlAIB::nwhich</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Number of entries to update </p>

</div>
</div>
<a class="anchor" id="ae0a5d0c9804d157558b92eb06b5c840f"></a><!-- doxytag: member="VlAIB::parents" ref="ae0a5d0c9804d157558b92eb06b5c840f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a>* <a class="el" href="structVlAIB.html#ae0a5d0c9804d157558b92eb06b5c840f">VlAIB::parents</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Array of parents </p>

</div>
</div>
<a class="anchor" id="a4d948f7509b088aa37d64fb7ac0e82b8"></a><!-- doxytag: member="VlAIB::Pc" ref="a4d948f7509b088aa37d64fb7ac0e82b8" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* <a class="el" href="structVlAIB.html#a4d948f7509b088aa37d64fb7ac0e82b8">VlAIB::Pc</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Marginal. </p>

</div>
</div>
<a class="anchor" id="ac1949576f214b7a6691189deb7d9dace"></a><!-- doxytag: member="VlAIB::Pcx" ref="ac1949576f214b7a6691189deb7d9dace" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* <a class="el" href="structVlAIB.html#ac1949576f214b7a6691189deb7d9dace">VlAIB::Pcx</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Joint probability table </p>

</div>
</div>
<a class="anchor" id="a064882a6f2252669858850fc650b97de"></a><!-- doxytag: member="VlAIB::Px" ref="a064882a6f2252669858850fc650b97de" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* <a class="el" href="structVlAIB.html#a064882a6f2252669858850fc650b97de">VlAIB::Px</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Marginal. </p>

</div>
</div>
<a class="anchor" id="aa0e490d88c8ea0c372bf02b23f291108"></a><!-- doxytag: member="VlAIB::which" ref="aa0e490d88c8ea0c372bf02b23f291108" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a>* <a class="el" href="structVlAIB.html#aa0e490d88c8ea0c372bf02b23f291108">VlAIB::which</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>List of entries to update </p>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="aib_8h.html">aib.h</a></li>
</ul>
</div>
     <!-- Doc Here -->
    </div>
   
   </div>
   <div class="clear">&nbsp;</div>
  </div> <!-- pagebody -->
  <div id="footer">
   &copy; 2007-12 Andrea Vedaldi and Brian Fulkerson
  </div> <!-- footer -->

  <!-- Google Analytics Begins -->
  <script xml:space="preserve" type="text/javascript">
   //<![CDATA[
    var localre = /vlfeat.org/;
    if(document.location.host.search(localre) != -1)
    {
   var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
   document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
   }
   //]]>
  </script>
  <script xml:space="preserve" type="text/javascript">
    //<![CDATA[
    var localre = /vlfeat.org/;
    if(document.location.host.search(localre) != -1)
    {

   try {
   var pageTracker = _gat._getTracker("UA-4936091-2");
   pageTracker._trackPageview();
   } catch(err) {}

   }
   //]]>
  </script>
  <!-- Google Analytics Ends -->
 </body>
</html>

 
